package com.gxa.employment.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 班级信息表
 * </p>
 *
 * @author author
 * @since 2025-03-25
 */
@Getter
@Setter
@ToString
@TableName("tb_clazz")
public class Clazz implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 班级编号
     */
    @TableId(value = "clazz_id", type = IdType.AUTO)
    private Integer clazzId;

    /**
     * 班级名称
     */
    @TableField("clazz_name")
    private String clazzName;

    /**
     * 就业开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    @TableField("clazz_start")
    private LocalDate clazzStart;

    /**
     * 就业天数
     */
    @TableField("clazz_days")
    private Integer clazzDays;

    /**
     * 计算结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    @TableField("clazz_end")
    private LocalDate clazzEnd;

    /**
     * 项目经理
     */
    @TableField("clazz_manager")
    private String clazzManager;

    /**
     * 班主任
     */
    @TableField("clazz_teacher")
    private String clazzTeacher;

    /**
     * 就业状态：未开始，完成，未完成，结束
     */
    @TableField("clazz_status")
    private String clazzStatus;

    /**
     * 超时理由
     */
    @TableField("clazz_reason")
    private String clazzReason;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
    @TableField("clazz_created")
    private LocalDateTime clazzCreated;

    /**
     * 方向ID
     */
    @TableField("major_id")
    private Integer majorId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
    @TableField("created")
    private LocalDateTime created;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
    @TableField("updated")
    private LocalDateTime updated;

    /**
     * 逻辑删除标识
     */
    @TableField("deleted")
    private Boolean deleted;
}
